#ifndef PLAT_STRUCT_H
#define PLAT_STRUCT_H

#include <QObject>

// 数据传输和命令定义
#define PLAT_CMD_HEARTBEAT                    1     // 心跳包
#define PLAT_CMD_HEARTBEAT_DEVINSTCODE        2     // 心跳包（带设备实例号）
#define PLAT_CMD_REMOTE                       10    // 远程命令

//////////////////////////////////////////////////////////////////////////
// 结构定义 需要一字节对齐 处理
#ifdef XNWIN
#pragma pack(push)      //保存对齐状态
#pragma pack(1)         //设定为1字节对齐

#define LINUX_PACK_1_BYTE  
#else
#define LINUX_PACK_1_BYTE   __attribute__((packed))
#endif

// 消息头定义
typedef struct _SPlatHead
{
	quint8  uCmdType;         // 命令类型(1Byte)  
	quint8  uModbusAddrBg;    // 后台Modbus地址(1Byte)	 
	quint16 usDataLen;        // 数据长度(2Byte)	   
}LINUX_PACK_1_BYTE SPlatHead;

#ifdef XNWIN
#pragma pack(pop)                  // 恢复对齐状态
#endif

#endif // PLAT_STRUCT_H